{{response.files.append(URL('static','css/artwork.css'))}}
{{extend 'layout.html'}}
{{import os}}
{{version = request.env.web2py_version}}

<h2>web2py<sup style="font-size:0.5em;">TM</sup> Download</h2>

<center class="spaced">
  <table class="twothirds">
    <thead>
      <tr>
        <td><strong>For Windows users</strong></td>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>          
          <a class="btn btn180 rounded green" href="https://github.com/web2py/web2py/raw/refs/heads/master/binaries/web2py_win32_py312.zip">Windows binaries</a>
        </td>
      </tr>
    </tbody>
    <thead>
      <tr>
        <td><strong>For Linux and Mac Users</strong></td>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>          
          <a class="btn btn180 rounded" href="https://github.com/web2py/web2py/raw/refs/heads/master/binaries/web2py_src.zip">Source Code Zipped<br/>Released</a>
          <a class="btn btn180 rounded" href="http://github.com/web2py/web2py/">Git Repository</a>
          <a class="btn btn180 rounded" href="http://web2py.readthedocs.org/en/latest/">Source code docs</a>
          <a class="btn btn180 rounded" href="http://mdipierro.github.io/web2py/web2py_manual_5th.pdf">Book</a>
          <a class="btn btn180 rounded" href="https://github.com/web2py/web2py/issues">Report a Bug</a>
        </td>        
      </tr>
    </tbody>
    <thead>
      <tr>
        <td><strong>For Python 2.7 users (no longer supported)</strong></td>
      </tr>
    </thead>
    <tbody>            
      <tr>
        <td>          
          <a class="btn btn180 red rounded" href="https://mdipierro.pythonanywhere.com/examples/static/2.27.1/web2py_win_py27.zip">Windows binaries<br/>(2.27.1 frozen)</a>
          <a class="btn btn180 red rounded" href="https://mdipierro.pythonanywhere.com/examples/static/2.27.1/web2py_osx_py27.zip">Mac binaries<br/>(2.27.1 frozen)</a>
          <a class="btn btn180 red rounded" href="https://mdipierro.pythonanywhere.com/examples/static/2.27.1/web2py_src.zip">Source Code<br/>(2.27.1 frozen)</a>
        </td>
      </tr>
    </tbody>
  </table>
</center>

<p style="text-align:left;">
  The source code version works on Windows and most Unix systems, including <b>Linux</b>,  <b>BSD</b> and  <b>Mac</b> . It requires Python 3.5+ (recommended for new projects) 
  or Python 2.7+ (stable, for use with legacy apps) already installed on your system.
</p>
<p style="text-align:left;">
  There are also binary packages for Windows and MacOs. They include the Python interpreter version 3.7.4 or 2.7.16, so you do not need to have it pre-installed.
</p>

<h3>Instructions</h3>
<p>With the binary packages, after download, just unzip it and then click on web2py.exe (Windows) or web2py (MacOs).</p>
<p>Note that on recent MacOs versions (10.12+) you could face problems in running the binary App program, due to the last changes to the security settings. 
In this case, press the 'control' key + click on downloaded file and then 'open' it (confirm the warnings). Finally move the program in Applications and run it from there.
</p>
<p> If you prefer to run it from source with your own Python interpreter already installed, type:</p>
{{=CODE("python web2py.py", language=None, counter='>', _class='boxCode')}}
<p>or for more info type:</p>
{{=CODE("python web2py.py -h", language=None, counter='>', _class='boxCode')}}


<h3>Caveats</h3>
<p>After installation, every time you run it, web2py asks you to choose a password. This password is your administrative password. If the password is left blank, the administrative interface is disabled. The administrative interface /admin/default/index is only accessible via localhost and always requires a password.</p>
<p>Any url /a/b/c maps into a call to application a, controller b.py and function c in that controller.</p>
<p>You are strongly advised to also use Apache with mod_proxy or mod_wsgi to access applications in the framework. This allows better security and concurrency.</p>

<h3 id="license">License</h3>
<p>Web2py code is released under <a href="http://www.gnu.org/licenses/lgpl.html">LGPLv3 License</a>. This license does not extend to third party libraries distributed with web2py (which can be MIT, BSD or Apache type licenses) nor does it extend to applications built with web2py (under the terms of the LGPL.</p>
<p>Applications built with web2py can be released under any license the author wishes as long as they do not contain web2py code. They can link unmodified web2py libraries and they can be distributed with official web2py binaries. In particular web2py applications can be distributed in closed source. The admin interface provides a button to byte-code compile.</p>
<p>It is fine to distribute web2py (source or compiled) with your applications as long as you make it clear in the license where your application ends and web2py starts.</p>
<p>web2py is copyrighted by Massimo Di Pierro. The web2py trademark is owned by Massimo Di Pierro.</p>
<a class="btn btn-small rounded" href="{{=URL('license')}}">read more</a>

<h3>Artwork</h3>
<center>
  <a href="{{=URL('static', 'images/logo_lb.png')}}"><img src="{{=URL('static', 'images/logo_lb.png')}}" width="200px"/></a>
  <a href="{{=URL('static', 'images/logo_db.png')}}"><img src="{{=URL('static', '\
							       images/logo_db.png')}}" width="200px"/></a>
  <a href="{{=URL('static', 'images/logo_bw.png')}}"><img src="{{=URL('static', '\
							       images/logo_bw.png')}}" width="200px"/></a>
</center>
<h3>Stickers</h3>
<center>
  <a  href="{{=URL('static', 'images/Stickers1.png')}}"><img src="{{=URL('static', 'images/Stickers1.png')}}" /></a>
  <a  href="{{=URL('static', 'images/Stickers2.png')}}"><img src="{{=URL('static', 'images/Stickers2.png')}}" /></a>
  <a  href="{{=URL('static', 'images/Stickers3.png')}}"><img src="{{=URL('static', 'images/Stickers3.png')}}" /></a>
  <a  href="{{=URL('static', 'images/Stickers4.png')}}"><img src="{{=URL('static', 'images/Stickers4.png')}}" /></a>
  <a  href="{{=URL('static', 'images/Stickers5.png')}}"><img src="{{=URL('static', 'images/Stickers5.png')}}" /></a>
  <a  href="{{=URL('static', 'images/Stickers6.png')}}"><img src="{{=URL('static', 'images/Stickers6.png')}}" /></a>
  <a  href="{{=URL('static', 'images/Stickers7.png')}}"><img src="{{=URL('static', 'images/Stickers7.png')}}" /></a>
    <a  href="{{=URL('static', 'images/Stickers8.png')}}"><img src="{{=URL('static', 'images/Stickers8.png')}}" /></a>
</center>
<p></p>
<p>
  <a href="{{=URL('static', 'artwork.tar.gz')}}" >Download WEB2PY artwork pack in editable .png format</a>
</p>
<p>
  Logo, Stickers and Layout developed by <a target="_blank" href="http://twitter.com/josev2010">José V. Sousa</a> and <a target="_blank" href="http://twitter.com/rochacbruno">Bruno Rocha</a> (at <a target="_blank" href="http://www.blouweb.com">Blouweb</a>) All rights reserved by  <a target="_blank" href="http://mycti.cti.depaul.edu/people/facultyInfo_mycti.asp?id=343">Massimo Di Pierro</a> &copy; {{=request.now.year}}
  </p>
<p>
  Favicon and HTML5 compatibility  by <a target="_blank" href="">Martin Mulone</a>
</p>
<p>
  Icon set made by <a href="http://chrfb.deviantart.com">Christian Burprich</a> licensed under a <a rel="license" target="_blank" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 License</a>
</p>

